The software of certain user devices occasionally may need to be updated on occasion by the device manufacturer, a service provider, a software vendor, or another party. These updates may be provided in many ways. For example, if the user device is a wireless device, such as a cellphone, personal digital assistant (PDA), tablet, or the like, that communicates wirelessly with a network, an update package may be provided over the air, i.e., provided via a wireless local area network (WLAN), cell network, or other such wireless communication network, and installed on the device. In such a case, and indeed even in the case of a wired device, it is desirable that the update package be as small as possible to avoid download costs for the user and network traffic for the network operator.
One method of keeping the size of an update package relatively small is the use of a “delta file,” which contains only the difference between an old file and a new file. Thus, the user only needs to download a delta file instead of the entire modified file. The device may then use the delta file to modify the old file so that it is identical to the new file.
While the use of delta files is generally an efficient means of providing update packages, problems can be introduced when using them with compressed files. In particular, compression may introduce bit changes which cause the differences between a compressed original file and a compressed modified file to accumulate to the point that a resulting delta file may be almost as large as the entire modified file.